# Graphics terminal functions

Графически терминал состоит из видеоадаптера и клавиатуры.
Аткуальная версия исходного кода основана на эмуляции видеоадаптера
с разрешением 640x480 точек 32 бита на точку.

### Функции графического терминала
Гррафический дисплей эмулируется в окне Windows размером 640x480. 
Список поддерживаемых функий: 
1. **_clear_vga_screen** - очистка экрана
2. **_select_font** - установка указателя на растровый шрифт в формате 8x16 размером 256 символов
3. **_get_key** - читает символ из клавиатуры графического терминала
4. **_refresh_screen** - обновляет содержимое экрана после использования следующих функций:
5. **_draw_char** - вывод ASCII символа заданного цвета и фона по адресу видеопамяти
6. **_draw_string** - вывод строки заданного цвета и фона в заданную позицию экрана (80x30)
7. **_shift_screen_vertically** - сдвигает экран вверх или вниз (вертикальный сдвиг)
8. **_shift_screen_horizontally** - сдвигает экран влево или впарво (горизонтальный сдвиг)

### Порты видеоадартера

| Адрес      | Назначение                                                                |
| ---------- | ------------------------------------------------------------------------- |
| 0FFFEFFE0H | управляющий порт. Запись в него приводит к обновлению содержимого экрана  |
| 0FFFEFFE8H | регистр вертикально сдвига экрана                                         |
| 0FFFEFFECH | регистр горизонтального сдвига экрана                                     |
| 0fffeffe4h | регист чтения клавиатуры (эмулятор блокируется до нажатия клавиши)        |                                               |
